"""
演示Python内置的各类魔术方法
__xx__ 函数，一般都有特殊功能，使得实例化后的对象 可以直接比较/运算
"""
class Student:
    def __init__(self, name, age):
        self.name = name        # 学生姓名
        self.age = age          # 学生年龄

    # __str__魔术方法
     # 使得print对象实例时，会自动调用该方法输出字符串
    def __str__(self):
        return f"Student类对象，name:{self.name}, age:{self.age}"

    # __lt__魔术方法
    def __lt__(self, other):
        return self.age < other.age

    # __le__魔术方法
    def __le__(self, other):
        return self.age <= other.age

    # __eq__魔术方法
    # 若没该方法，==判断的是两个生成实例的内存地址
    def __eq__(self, other):
        return self.age == other.age

    def __add__(self, other):
        return self.age + other.age


stu1 = Student("周杰轮", 31)
stu2 = Student("林俊节", 36)
stu3=Student("姚一摇", 36)

print(stu1 == stu3)
print(stu1 + stu2)
print(stu1 < stu3)  # 会调用__lt__
print(stu3)  # 会调用__str__
print('------------------------------------')


#




